home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / make / icmake-6.000 / icmake-6 / icmake / comp / andboole.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-02-08  |  716 b   |  33 lines

  1. /*
  2.                             A N D B O O L E . C
  3. */
  4.  
  5. #include "iccomp.h"
  6.  
  7. ESTRUC_ *and_boolean(lexp, rexp)
  8.     ESTRUC_
  9.         *lexp,
  10.         *rexp;
  11. {
  12.     if (lexp->type & rexp->type & e_const)  /* two constants: compute result */
  13.     {
  14.         lexp->evalue =
  15.             (test_type(lexp, e_str) || lexp->evalue)
  16.             &&
  17.             (test_type(rexp, e_str) || rexp->evalue);
  18.         set_type(lexp, e_const | e_int);
  19.     }
  20.     else                                    /* at least one code-part */
  21.     {
  22.         fetob(lexp);
  23.         fetob(rexp);
  24.  
  25.         patchup_true(lexp, 1);
  26.         lexp->truelen = 0;
  27.         lexp = catcode(lexp, rexp);
  28.         set_type(lexp, e_bool | e_code);
  29.     }
  30.  
  31.     return (lexp);
  32. }
  33.